// 导入 Sequelize 库
const { DataTypes } = require('sequelize');
const {sequelize } = require('../sql/database'); // 引入数据库连接实例

// 定义 User 模型
const User = sequelize.define('User', {
   // 属性定义
  id: {
    type: DataTypes.INTEGER,// 整型
    primaryKey: true,// 主键
    autoIncrement: true, // 自动递增
    allowNull: false, // 不允许为空
  },
  username: {
    type: DataTypes.STRING, // 字符串类型
    allowNull: false,// 不允许为空
  },
  identity: {
    type: DataTypes.STRING,
    allowNull: false,
    // unique: true, // 唯一性
  },
  password: {
    type: DataTypes.STRING,
    allowNull: false,
    // 以在此添加密码强度验证逻辑
  },
  email: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true, // 邮箱唯一
    validate: {
      isEmail: true, // 验证邮箱格式
    },
  }
}, {
  // 模型选项
  timestamps: false, // 启用时间戳，默认为true，这里显式声明
  paranoid: true, // 软删除，启用后deletedAt会被记录
  freezeTableName: false, // 使用模型名作为表名，不进行复数形式转换
  tableName: 'custom_users', // 明确指定表名，当freezeTableName为false时使用
  underscored: false, // 不使用下划线命名，默认false
})

//   // 在User.js文件末尾或另一个测试文件中
//   User.findAll({
//     where: {
//       id: 1
//     }
//   }).then(user => {
//   console.log(user);
// }).catch(err => {
//   console.error('Error fetching user:', err);
// });
// User.findAll()
module.exports = User; // 导出模型